<?php
class  cusuarios extends Controller 
{
	public function __construct()
	{
		parent::Controller();
		$this->load->model(array('usuarios','mresponsable','mroles','mdepartamento'));

	}
	
	public function index()
	{
		$this->load->view('main', array('content_page' => 'usuarios_list','menutop' => 0));
	}
	
	public function data() 
	{
		$page = $this->input->post('page') ? $this->input->post('page') : 1; // Pagina Actual o 1 por default
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'IdUsuario'; // Columna para el order by
		$sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'asc'; // Orden (asc|desc)
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 30;
		$start = $limit * $page - $limit;
		if($start < 0) $start = 0;

		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		header("Cache-Control: no-cache, must-revalidate" );
		header("Pragma: no-cache" );

		$records = $this->usuarios->LoadUsuarios($start, $limit, $sortname, $sortorder);
		
		$totalRecords = count($records);

		$totalPages = ceil($totalRecords/$limit);
		if ($page > $totalPages) $page = $totalPages;

		$json_output = array(
		'page'		=> $page,
		'total'		=> $totalPages,
		'records'	=> $totalRecords,
		'rows'		=> array()
		); 

		if($records != false) {
			foreach($records as $usuario) {
				
				$rol = $this->mroles->LoadEstatusById($usuario->getIdRol()); 
				$depa = $this->mdepartamento->LoadEstatusById($usuario->getIdDepartamento());
				$responsable = $this->mresponsable->LoadEstatusById($usuario->getIdresponsable());
				
				if ($usuario->getEstado() == 0) {
					$imagen="<img src='http://code.company24h.com/public/images/1.png'/>";
				}
				else 
		        {
		            $imagen="<img src='http://code.company24h.com/public/images/3.png'/>";	
		        } 
			
			    
			    	$arr = $json_output['rows'][] = 
				           array('IdUsuario'         => $usuario->getIdUsuario(),
					              'NombreUsuario'    => $usuario->getNombreUsuario(),
					              'IdResponsable'    => $responsable->getNombre(),
					              'IdRol'            => $rol->getNombre(),
					              'ClaveUsuario'     => $usuario->getClaveUsuario(),
					              'UsernameUsuario'  => $usuario->getUsernameUsuario(),
					              'IdDepartamento'   => $depa->getNombre(),
					              'Estatus'          => $imagen
					             );
			
			}
		}

		$a=json_encode($json_output);
		$a=str_replace('\\','',$a);
		echo $a;
	}
	
	public function add()
	{
		$this->load->view('main', array('content_page' => 'add_usuario','menutop' => 0,'responsable' => $this->mresponsable->LoadResponsable(),'roles'=>$this->mroles->LoadEstatus(),'departamento'=>$this->mdepartamento->LoadEstatus()));
	}
	
    public function edit($id)
	{
		$usuario = $this->usuarios->LoadUsuarioById($id);
		$roll = $this->mroles->LoadEstatusById($usuario->getIdRol());
		$mrespo = $this->mresponsable->LoadEstatusById($usuario->getIdresponsable());
		$mdep = $this->mdepartamento->LoadEstatusById($usuario->getIdDepartamento());
		$this->load->view('main', array('content_page' => 'edit_usuario','menutop' => 0,'usuario'=>$usuario,'rool'=>$roll,'responsable' => $this->mresponsable->LoadResponsable(),'roles'=>$this->mroles->LoadEstatus(),'departamento'=>$this->mdepartamento->LoadEstatus(),'mires'=>$mrespo,'mdep'=>$mdep,'id'=>$id));
	}
	
	public function save()
	{
		$nombre = $this->input->post('nombre');
		$usuario = $this->input->post('usuario');
		$responsable = $this->input->post('responsable');
		$roll = $this->input->post('roll');
		$pass = $this->input->post('pass');
	    $departamento = $this->input->post('departamento');
      if ($this->input->post('id') < 1 || $this->input->post('id') == false) {
                      
	   if ($this->usuarios->LoadUsuarioByuse($usuario)==false) {
	       $this->usuarios->CreateUsuario($nombre,$responsable,$roll,$pass,$usuario,$departamento);	
	    }
	   else  
	   {
	   	$this->session->set_flashdata('usuario','El usuario ya existe vuelva a intentar con uno diferente');
	   	redirect('cusuarios/add');  
	   }
	   redirect('cusuarios');  
		
	   }
	   else{
	   	 $use = $this->usuarios->LoadUsuarioById($this->input->post('id'));
	   	    
	   	  if ($this->usuarios->LoadUsuarioByuse($usuario)==false) {
	       $this->usuarios->UpdateUsuario($nombre,$responsable,$roll,$pass,$usuario,$departamento,$this->input->post('id'));	
	    }
	   else  
	   {
	   	 if ($usuario == $use->getUsernameUsuario())
	   	 {
	   	 	 $this->usuarios->UpdateUsuario($nombre,$responsable,$roll,$pass,$usuario,$departamento,$this->input->post('id'));	
	   	 }
	   	 else 
	   	 {
	   	   $this->session->set_flashdata('usuario','El usuario ya existe vuelva a intentar con uno diferente');
	   	   redirect('cusuarios/add');	
	   	 }
	   		
	   	}
	   	  
	   }
	   redirect('cusuarios');  
	   	
	}
	
	public function activar($id)
	{
		$this->usuarios->Activar($id);
	    redirect('cusuarios');
	}
	
	public function delete()
	{	
		 $ids = $this->input->post('delete_rows');
	   
	      if ($this->usuarios->Delete($ids) === true) {
	   	   
	      }else{
	         
	      } 
	}
}